/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package USECASE;

import BO.Adresse;
import BO.ClientMoral;
import BO.ClientPhysique;
import BO.ListeClient;
import BO.ZoneGeographique;

/**
 *
 * @author olivierm
 */
public class UC_GestionClient {

/**
 * Constructeut du singleton
 */    
    public static UC_GestionClient instance = new UC_GestionClient();
    
    public static UC_GestionClient getInstance(){
        return instance;
    }

/**
 * Traitements
 */
    public ClientPhysique creerClientPhysique(String nom, String prenom, String rue, int numero, int cp, String ville, int numeroZoneGeo, int numeroTVA){
        if(nom==null||prenom==null||rue==null||ville==null)return null;
        ZoneGeographique zoneGeo = new ZoneGeographique(numeroZoneGeo);
        Adresse adresse = new Adresse(rue, numero, cp, ville, zoneGeo);
        ClientPhysique cltP = new ClientPhysique(nom, prenom, adresse, numeroTVA);
        return cltP;
    }
    
    public ClientMoral creerClientMoral(String nom, String prenom,String nomsociete, int statut, String rue, int numero, int cp, String ville, int numeroZoneGeo, int numeroTVA){
        if(nom==null||prenom==null||rue==null||ville==null)return null;
        ZoneGeographique zoneGeo = new ZoneGeographique(numeroZoneGeo);
        Adresse adresse = new Adresse(rue, numero, cp, ville, zoneGeo);
        ClientMoral cltM = new ClientMoral(nom, prenom, adresse, numeroTVA, nomsociete, statut);
        return cltM;
    }
    
    public ClientPhysique rechercherClientPhysique(int numeroClient){
        ClientPhysique cltP = ListeClient.getInstance().rechercherClientPnumeroClient(numeroClient);
        return cltP;
    }
    
    public ClientMoral rechercherClientMoral(int numeroClient){
        ClientMoral cltM = ListeClient.getInstance().rechercherClientMnumeroClient(numeroClient);
        return cltM;
    }
    
    public boolean modifierClientPhysique(ClientPhysique cltP){
        if(cltP == null) return false;
        return false;//TO DO
    }
}
